package exception;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JDK7之后，java推出了自动关闭特性，使得异常处理处理更加的优雅
 */
public class AutocloseableDemo {
    public static void main(String[] args) {
        try(
            /*
                只有实现了java.io.AutoCloseable接口的类才可以在这里定义
                并且编译器编译后会将它放在finally中关闭，编译后的样子可参考FinallyDemo2
                java中所有的流(无论字节流还是字符流)都实现了该接口
                因为超类InputStream，OutputStream,Reader,Writer都实现了该接口
             */
            FileOutputStream fos = new FileOutputStream("fos.dat");
//            String s = "abc";//String不可以在这里定义，因为它没有实现AutoCloseable接口
        ){
            int a = 1;
            fos.write(a);
        } catch (IOException e) {
            System.out.println("出错了");
        }
    }
}
